# -*- coding: utf-8 -*-
'''
name: Miguel Vitória, nº 5162
version: 11-12-20011
'''
import data
from operator import itemgetter

def statistic_1():
    '''
    calculo das estatisticas 1 nº de professores por nome de estabelecimentos
    e por ano
    '''
    lista = data.load_List()
    #ordena a lista por nome de estabelecimentos e por ano
    lista = sorted(lista, key=itemgetter(8,6))
    i = 1
    pos = 0
    listaTemp = []
    for x in lista:
        #o primeiro dado da lista é guardado numa lista temporária
        if len(listaTemp) == 0:
            listaTemp.append((x[8],x[6], i))
            pass
        else:
            i += 1
            #compara o dado da lista com o ultimo registo inserido na
            #lista temporária, se for diferente vai incrementar a
            #posição da lista temporária 
            if x[8] != listaTemp[pos][0] or x[6] != listaTemp[pos][1]:  
                pos += 1
                i = 1
                pass
            #insere o dado na lista temporária numa posição
            listaTemp.insert(pos,(x[8],x[6], i))
            pass
        pass
    return listaTemp

def statistic_2():
    '''
    calculo das estatisticas 2 nº de professores por nome de estabelecimentos
    por ano e por categoria
    '''
    lista = data.load_List()
    #ordena a lista por nome de estabelecimentos por ano e por categoria 
    lista = sorted(lista, key=itemgetter(8,6,4)) 
    i = 1
    pos = 0
    listaTemp = []
    for x in lista:
        #o primeiro dado da lista é guardado numa lista temporária
        if len(listaTemp) == 0:
            listaTemp.append((x[4], x[8], x[6], i))
            pass
        else:
            i += 1
            #compara o dado da lista com o ultimo registo inserido na
            #lista temporária, se for diferente vai incrementar a
            #posição da lista temporária
            if x[4] != listaTemp[pos][0] or x[8] != listaTemp[pos][1] \
            or x[6] != listaTemp[pos][2]:  
                pos += 1
                i = 1
                pass
            #insere o dado na lista temporária numa posição
            listaTemp.insert(pos,(x[4], x[8], x[6], i))
            pass
        pass
    return listaTemp

def statistic_3():
    '''
    calculo das estatisticas 3 nº de professores por nome de estabelecimentos
    por ano e por grau
    '''
    lista = data.load_List()
    #ordena a lista por nome de estabelecimentos por ano e por grau
    lista = sorted(lista, key=itemgetter(8,6,2)) 
    i = 1
    pos = 0
    listaTemp = []
    for x in lista:
        #o primeiro dado da lista é guardado numa lista temporária
        if len(listaTemp) == 0:
            listaTemp.append((x[2], x[8], x[6], i))
            pass
        else:
            i += 1
            #compara o dado da lista com o ultimo registo inserido na
            #lista temporária, se for diferente vai incrementar a
            #posição da lista temporária
            if x[2] != listaTemp[pos][0] or x[8] != listaTemp[pos][1] \
            or x[6] != listaTemp[pos][2]:  
                pos += 1
                i = 1
                pass
            #insere o dado na lista temporária numa posição
            listaTemp.insert(pos,(x[2], x[8], x[6], i))
            pass
        pass
    return listaTemp
    

